//#include <iostream>
//#include <vector>
//using namespace std;
//
//void print(vector<int> a){
//	for(auto x : a){
//		cout << x << " ";
//	}
//	cout << endl;
//}
//
//int main(){
//	vector<int> aa(5,1);
//	print(aa);
//	aa.resize(10);
//	print(aa);
//	aa.resize(3);
//	print(aa);
//	aa.clear();
//	cout << aa.size() << endl;
//	return 0;
//}

#include <iostream>
#include <vector>
using namespace std;

const int N = 1e5 + 10;

int main(){
	vector<int> a[N];
	int n,q;
	cin >> n >> q;
	while(q--){
		int op,i,j,k;
		cin >> op >> i >> j;
		if(op == 1){
			cin >> k;
			if(a[i].size()<=j){
				a[i].resize(j+1);
			}
			a[i][j] = k;
		}
		else{
			cout << a[i][j] << endl;;
		}
	}
	return 0;
}

//int main(){
//	int m,n;
//	cin >> n >> m;
//	vector<int> a;
//	for(int i = 1;i <= n;i++){
//		int x;
//		cin >> x;
//		a.push_back(x);
//	}
//	while(m--){
//		int x;
//		cin >> x;
//		cout << a[x-1] << endl;
//	}
//	return 0;
//}
